/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managers;

import catalogos.ExtraccionCatalogos;
import conexionBD.ConexionServidor;
import java.io.Serializable;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;

/**
 *
 * @author jose
 */
@ManagedBean
@SessionScoped
public class managerMatrizDanio implements Serializable {

    FacesContext context;
    private String datoBuscar;
    private String espacioEstudio;
    private double areaEspacio;
    private String danioSeleccionado;
    private String materialSeleccionado;
    private String elemento;
    private Integer codigo;
    private Integer espacioSeleccionado;
    private int gradoConservacionSeleccionado;
    private int gradoAlteracionSeleccionado;
    private int porcentajedaniado;
    private int gradoConservacionSeleccionado1;
    private int gradoAlteracionSeleccionado1;
    private int porcentajeDanio1;
    private int gradoConservacionSeleccionado2;
    private int gradoAlteracionSeleccionado2;
    private int porcentajeDanio2;
    private int gradoConservacionSeleccionado3;
    private int gradoAlteracionSeleccionado3;
    private int porcentajeDanio3;
    private int gradoConservacionSeleccionado4;
    private int gradoAlteracionSeleccionado4;
    private int porcentajeDanio4;
    private int gradoConservacionSeleccionado5;
    private int gradoAlteracionSeleccionado5;
    private int porcentajeDanio5;
    private int gradoConservacionSeleccionado6;
    private int gradoAlteracionSeleccionado6;
    private int porcentajeDanio6;
    private int gradoConservacionSeleccionado7;
    private int gradoAlteracionSeleccionado7;
    private int porcentajeDanio7;
    private int gradoConservacionSeleccionado8;
    private int gradoAlteracionSeleccionado8;
    private int porcentajeDanio8;
    private int gradoConservacionSeleccionado9;
    private int gradoAlteracionSeleccionado9;
    private int porcentajeDanio9;
    private int gradoConservacionSeleccionado10;
    private int gradoAlteracionSeleccionado10;
    private int porcentajeDanio10;
    private ExtraccionCatalogos catalogos = new ExtraccionCatalogos();

    /** Creates a new instance of managerAuxCrearEvalDanio */
    public managerMatrizDanio() {
        espacioSeleccionado = 0;
    }

    public Integer getCodigo() {
        return codigo;
    }

    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    public String getDatoBuscar() {
        return datoBuscar;
    }

    public void setDatoBuscar(String datoBuscar) {
        this.datoBuscar = datoBuscar;
    }

    public double getAreaEspacio() {
        return areaEspacio;
    }

    public void setAreaEspacio(double areaEspacio) {
        this.areaEspacio = areaEspacio;
    }

    public String getEspacioEstudio() {
        return espacioEstudio;
    }

    public void setEspacioEstudio(String espacioEstudio) {
        this.espacioEstudio = espacioEstudio;
    }

    public Integer getEspacioSeleccionado() {
        return espacioSeleccionado;
    }

    public void setEspacioSeleccionado(Integer espacioSeleccionado) {
        this.espacioSeleccionado = espacioSeleccionado;
    }

    public int getGradoConservacionSeleccionado() {
        return gradoConservacionSeleccionado;
    }

    public void setGradoConservacionSeleccionado(int gradoConservacionSeleccionado) {
        this.gradoConservacionSeleccionado = gradoConservacionSeleccionado;
    }

    public int getGradoAlteracionSeleccionado() {
        return gradoAlteracionSeleccionado;
    }

    public void setGradoAlteracionSeleccionado(int gradoAlteracionSeleccionado) {
        this.gradoAlteracionSeleccionado = gradoAlteracionSeleccionado;
    }

    public int getPorcentajeDanio() {
        return porcentajedaniado;
    }

    public void setPorcentajeDanio(int porcentajedaniado) {
        this.porcentajedaniado = porcentajedaniado;
    }

    public ExtraccionCatalogos getCatalogos() {
        return catalogos;
    }

    public void setCatalogos(ExtraccionCatalogos catalogos) {
        this.catalogos = catalogos;
    }

    public String getDanioSeleccionado() {
        return danioSeleccionado;
    }

    public void setDanioSeleccionado(String danioSeleccionado) {
        this.danioSeleccionado = danioSeleccionado;
    }

    public String getMaterialSeleccionado() {
        return materialSeleccionado;
    }

    public void setMaterialSeleccionado(String materialSeleccionado) {
        this.materialSeleccionado = materialSeleccionado;
    }

    public int getGradoAlteracionSeleccionado1() {
        return gradoAlteracionSeleccionado1;
    }

    public void setGradoAlteracionSeleccionado1(int gradoAlteracionSeleccionado1) {
        this.gradoAlteracionSeleccionado1 = gradoAlteracionSeleccionado1;
    }

    public int getGradoAlteracionSeleccionado10() {
        return gradoAlteracionSeleccionado10;
    }

    public void setGradoAlteracionSeleccionado10(int gradoAlteracionSeleccionado10) {
        this.gradoAlteracionSeleccionado10 = gradoAlteracionSeleccionado10;
    }

    public int getGradoAlteracionSeleccionado2() {
        return gradoAlteracionSeleccionado2;
    }

    public void setGradoAlteracionSeleccionado2(int gradoAlteracionSeleccionado2) {
        this.gradoAlteracionSeleccionado2 = gradoAlteracionSeleccionado2;
    }

    public int getGradoAlteracionSeleccionado3() {
        return gradoAlteracionSeleccionado3;
    }

    public void setGradoAlteracionSeleccionado3(int gradoAlteracionSeleccionado3) {
        this.gradoAlteracionSeleccionado3 = gradoAlteracionSeleccionado3;
    }

    public int getGradoAlteracionSeleccionado4() {
        return gradoAlteracionSeleccionado4;
    }

    public void setGradoAlteracionSeleccionado4(int gradoAlteracionSeleccionado4) {
        this.gradoAlteracionSeleccionado4 = gradoAlteracionSeleccionado4;
    }

    public int getGradoAlteracionSeleccionado5() {
        return gradoAlteracionSeleccionado5;
    }

    public void setGradoAlteracionSeleccionado5(int gradoAlteracionSeleccionado5) {
        this.gradoAlteracionSeleccionado5 = gradoAlteracionSeleccionado5;
    }

    public int getGradoAlteracionSeleccionado6() {
        return gradoAlteracionSeleccionado6;
    }

    public void setGradoAlteracionSeleccionado6(int gradoAlteracionSeleccionado6) {
        this.gradoAlteracionSeleccionado6 = gradoAlteracionSeleccionado6;
    }

    public int getGradoAlteracionSeleccionado7() {
        return gradoAlteracionSeleccionado7;
    }

    public void setGradoAlteracionSeleccionado7(int gradoAlteracionSeleccionado7) {
        this.gradoAlteracionSeleccionado7 = gradoAlteracionSeleccionado7;
    }

    public int getGradoAlteracionSeleccionado8() {
        return gradoAlteracionSeleccionado8;
    }

    public void setGradoAlteracionSeleccionado8(int gradoAlteracionSeleccionado8) {
        this.gradoAlteracionSeleccionado8 = gradoAlteracionSeleccionado8;
    }

    public int getGradoAlteracionSeleccionado9() {
        return gradoAlteracionSeleccionado9;
    }

    public void setGradoAlteracionSeleccionado9(int gradoAlteracionSeleccionado9) {
        this.gradoAlteracionSeleccionado9 = gradoAlteracionSeleccionado9;
    }

    public int getGradoConservacionSeleccionado1() {
        return gradoConservacionSeleccionado1;
    }

    public void setGradoConservacionSeleccionado1(int gradoConservacionSeleccionado1) {
        this.gradoConservacionSeleccionado1 = gradoConservacionSeleccionado1;
    }

    public int getGradoConservacionSeleccionado10() {
        return gradoConservacionSeleccionado10;
    }

    public void setGradoConservacionSeleccionado10(int gradoConservacionSeleccionado10) {
        this.gradoConservacionSeleccionado10 = gradoConservacionSeleccionado10;
    }

    public int getGradoConservacionSeleccionado2() {
        return gradoConservacionSeleccionado2;
    }

    public void setGradoConservacionSeleccionado2(int gradoConservacionSeleccionado2) {
        this.gradoConservacionSeleccionado2 = gradoConservacionSeleccionado2;
    }

    public int getGradoConservacionSeleccionado3() {
        return gradoConservacionSeleccionado3;
    }

    public void setGradoConservacionSeleccionado3(int gradoConservacionSeleccionado3) {
        this.gradoConservacionSeleccionado3 = gradoConservacionSeleccionado3;
    }

    public int getGradoConservacionSeleccionado4() {
        return gradoConservacionSeleccionado4;
    }

    public void setGradoConservacionSeleccionado4(int gradoConservacionSeleccionado4) {
        this.gradoConservacionSeleccionado4 = gradoConservacionSeleccionado4;
    }

    public int getGradoConservacionSeleccionado5() {
        return gradoConservacionSeleccionado5;
    }

    public void setGradoConservacionSeleccionado5(int gradoConservacionSeleccionado5) {
        this.gradoConservacionSeleccionado5 = gradoConservacionSeleccionado5;
    }

    public int getGradoConservacionSeleccionado6() {
        return gradoConservacionSeleccionado6;
    }

    public void setGradoConservacionSeleccionado6(int gradoConservacionSeleccionado6) {
        this.gradoConservacionSeleccionado6 = gradoConservacionSeleccionado6;
    }

    public int getGradoConservacionSeleccionado7() {
        return gradoConservacionSeleccionado7;
    }

    public void setGradoConservacionSeleccionado7(int gradoConservacionSeleccionado7) {
        this.gradoConservacionSeleccionado7 = gradoConservacionSeleccionado7;
    }

    public int getGradoConservacionSeleccionado8() {
        return gradoConservacionSeleccionado8;
    }

    public void setGradoConservacionSeleccionado8(int gradoConservacionSeleccionado8) {
        this.gradoConservacionSeleccionado8 = gradoConservacionSeleccionado8;
    }

    public int getGradoConservacionSeleccionado9() {
        return gradoConservacionSeleccionado9;
    }

    public void setGradoConservacionSeleccionado9(int gradoConservacionSeleccionado9) {
        this.gradoConservacionSeleccionado9 = gradoConservacionSeleccionado9;
    }

    public int getPorcentajeDanio1() {
        return porcentajeDanio1;
    }

    public void setPorcentajeDanio1(int porcentajeDanio1) {
        this.porcentajeDanio1 = porcentajeDanio1;
    }

    public int getPorcentajeDanio10() {
        return porcentajeDanio10;
    }

    public void setPorcentajeDanio10(int porcentajeDanio10) {
        this.porcentajeDanio10 = porcentajeDanio10;
    }

    public int getPorcentajeDanio2() {
        return porcentajeDanio2;
    }

    public void setPorcentajeDanio2(int porcentajeDanio2) {
        this.porcentajeDanio2 = porcentajeDanio2;
    }

    public int getPorcentajeDanio3() {
        return porcentajeDanio3;
    }

    public void setPorcentajeDanio3(int porcentajeDanio3) {
        this.porcentajeDanio3 = porcentajeDanio3;
    }

    public int getPorcentajeDanio4() {
        return porcentajeDanio4;
    }

    public void setPorcentajeDanio4(int porcentajeDanio4) {
        this.porcentajeDanio4 = porcentajeDanio4;
    }

    public int getPorcentajeDanio5() {
        return porcentajeDanio5;
    }

    public void setPorcentajeDanio5(int porcentajeDanio5) {
        this.porcentajeDanio5 = porcentajeDanio5;
    }

    public int getPorcentajeDanio6() {
        return porcentajeDanio6;
    }

    public void setPorcentajeDanio6(int porcentajeDanio6) {
        this.porcentajeDanio6 = porcentajeDanio6;
    }

    public int getPorcentajeDanio7() {
        return porcentajeDanio7;
    }

    public void setPorcentajeDanio7(int porcentajeDanio7) {
        this.porcentajeDanio7 = porcentajeDanio7;
    }

    public int getPorcentajeDanio8() {
        return porcentajeDanio8;
    }

    public void setPorcentajeDanio8(int porcentajeDanio8) {
        this.porcentajeDanio8 = porcentajeDanio8;
    }

    public int getPorcentajeDanio9() {
        return porcentajeDanio9;
    }

    public void setPorcentajeDanio9(int porcentajeDanio9) {
        this.porcentajeDanio9 = porcentajeDanio9;
    }

//lista de espacios
    public List<SelectItem> getListaEspacios() {
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> listaEspacio = new ArrayList<SelectItem>();
        listaEspacio.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM espacio WHERE idexpediente = ?");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                listaEspacio.add(new SelectItem(rs.getInt("idespacio"), rs.getString("nombreespacio")));
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        return listaEspacio;
    }

    public List<SelectItem> getListaEstadosConservacion() {
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaEstadoConservacion();
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaGradoAltera() {
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaGradoAlteracion();
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesCubierta() {
        datoBuscar = "0102%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesEstructura() {
        datoBuscar = "0201%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesCielo() {
        datoBuscar = "0301%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesPared() {
        datoBuscar = "0401%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesPiso() {
        datoBuscar = "0501%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesEntrepiso() {
        datoBuscar = "0601%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesColumna() {
        datoBuscar = "0701%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesPuerta() {
        datoBuscar = "0802%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesVentana() {
        datoBuscar = "0902%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesBalcon() {
        datoBuscar = "1002%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaMaterialesEscalera() {
        datoBuscar = "1102%";
        List<SelectItem> listaMaterialesCubierta = new ArrayList<SelectItem>();
        listaMaterialesCubierta = catalogos.getListaMaterialElemento(datoBuscar);
        return listaMaterialesCubierta;
    }

    public List<SelectItem> getListaDanioCubierta() {
        datoBuscar = "01%";
        List<SelectItem> listaDanioCubierta = new ArrayList<SelectItem>();
        listaDanioCubierta = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioCubierta;
    }

    public List<SelectItem> getListaDanioEstructura() {
        datoBuscar = "02%";
        List<SelectItem> listaDanioEstructura = new ArrayList<SelectItem>();
        listaDanioEstructura = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioEstructura;
    }

    public List<SelectItem> getListaDanioCielo() {
        datoBuscar = "03%";
        List<SelectItem> listaDanioCielo = new ArrayList<SelectItem>();
        listaDanioCielo = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioCielo;
    }

    public List<SelectItem> getListaDanioParede() {
        datoBuscar = "04%";
        List<SelectItem> listaDanioPared = new ArrayList<SelectItem>();
        listaDanioPared = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioPared;
    }

    public List<SelectItem> getListaDanioPiso() {
        datoBuscar = "05%";
        List<SelectItem> listaDanioPiso = new ArrayList<SelectItem>();
        listaDanioPiso = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioPiso;
    }

    public List<SelectItem> getListaDanioEntrePiso() {
        datoBuscar = "06%";
        List<SelectItem> listaDanioEntrePiso = new ArrayList<SelectItem>();
        listaDanioEntrePiso = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioEntrePiso;
    }

    public List<SelectItem> getListaDanioColumna() {
        datoBuscar = "07%";
        List<SelectItem> listaDanioColumna = new ArrayList<SelectItem>();
        listaDanioColumna = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioColumna;
    }

    public List<SelectItem> getListaDanioPuerta() {
        datoBuscar = "08%";
        List<SelectItem> listaDanioPuerta = new ArrayList<SelectItem>();
        listaDanioPuerta = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioPuerta;
    }

    public List<SelectItem> getListaDanioVentana() {
        datoBuscar = "09%";
        List<SelectItem> listaDanioVentana = new ArrayList<SelectItem>();
        listaDanioVentana = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioVentana;
    }

    public List<SelectItem> getListaDanioBalcon() {
        datoBuscar = "10%";
        List<SelectItem> listaDanioBalcon = new ArrayList<SelectItem>();
        listaDanioBalcon = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioBalcon;
    }

    public List<SelectItem> getListaDanioEscalera() {
        datoBuscar = "11%";
        List<SelectItem> listaDanioEscalera = new ArrayList<SelectItem>();
        listaDanioEscalera = catalogos.getListaDanioElemento(datoBuscar);
        return listaDanioEscalera;
    }

    //Metodos de carga de informacion
    public void buscarCubierta() {        
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '01'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado = rs.getInt("idgrado_altera");
                porcentajedaniado = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarEstructuraSoportante() {
                ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '02'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado1 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado1 = rs.getInt("idgrado_altera");
                porcentajeDanio1 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarCieloFalso() {
                ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '03'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado2 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado2 = rs.getInt("idgrado_altera");
                porcentajeDanio2 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarParedes() {
                ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '04'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado3 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado3 = rs.getInt("idgrado_altera");
                porcentajeDanio3 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarPisos() {
                ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '05'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado4 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado4 = rs.getInt("idgrado_altera");
                porcentajeDanio4 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarEntrePisos() {
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '06'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado5 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado5 = rs.getInt("idgrado_altera");
                porcentajeDanio5 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarColumnas() {
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '07'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado6 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado6 = rs.getInt("idgrado_altera");
                porcentajeDanio6 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarPuertas() {
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '08'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado7 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado7 = rs.getInt("idgrado_altera");
                porcentajeDanio7 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarVentanas() {
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '09'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado8 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado8 = rs.getInt("idgrado_altera");
                porcentajeDanio8 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarBalcones() {
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '10'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado9 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado9 = rs.getInt("idgrado_altera");
                porcentajeDanio9 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void buscarEscaleras() {
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM estadoconserva_espacio WHERE idexpediente = ? AND idespacio = ? AND idcatal_elemento = '11'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                gradoConservacionSeleccionado10 = rs.getInt("idestado_conserva");
                gradoAlteracionSeleccionado10 = rs.getInt("idgrado_altera");
                porcentajeDanio10 = rs.getInt("porcentajedaniado");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
// obteniendo el area  por espacion

    public void obtenerAreaEspacio() {
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT areaespacio FROM espacio WHERE idexpediente = ? and idespacio = ?");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                areaEspacio = rs.getDouble("areaespacio");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
       buscarBalcones();
       buscarCieloFalso();
       buscarColumnas();
       buscarCubierta();
       buscarEntrePisos();
       buscarEscaleras();
       buscarEstructuraSoportante();
       buscarParedes();
       buscarPisos();
       buscarPuertas();
       buscarVentanas();
    }

    // listas para llenar las tablitas
    public Result getListaCubierta() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '01%'");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaEstructura() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '02%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaCielo() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '03%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaPared() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '04%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaPisos() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '05%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaEntrePisos() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '06%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaColumna() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '07%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaPuerta() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '08%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaVentana() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '09%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaBalcones() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '10%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public Result getListaEscaleras() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from vista_elementodanio where idexpediente = ? and idespacio = ? and idcatal_elemento like '11%' ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

    public void guardarEspacio() {
        //        String destino = null;
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            //Sentencia sql que hace el llamado a el procedimiento
            String sql = "{call espacio(?,?,?)}";
            CallableStatement cs = con.prepareCall(sql);
            //Setting los parametros a ser captorados or el proceso almacenado
            cs.setString(1, managerModificarExpediente.numeroExpediente);
            cs.setString(2, espacioEstudio);
            cs.setDouble(3, areaEspacio);
            //ejecucion del proceso almacenado
            cs.execute();
            //Mensaje de actualizacion exitosa
            context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "INSERCI&Oacute;N", "La informacion fue ingresada con exito"));
            //cierre de CallableStatement y Connection
            cs.close();
            con.close();
            limpiarDlg();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public void quitarEspacio() {
        //        String destino = null;
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            //Sentencia sql que hace el llamado a el procedimiento
            String sql = "{call removerespacio(?,?)}";
            CallableStatement cs = con.prepareCall(sql);
            //Setting los parametros a ser captorados or el proceso almacenado
            cs.setString(1, managerModificarExpediente.numeroExpediente);
            cs.setInt(2, 1); //aca va el espacio seleccionado
            //ejecucion del proceso almacenado
            cs.execute();
            //Mensaje de actualizacion exitosa
            context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "INSERCI&Oacute;N", "La informacion fue ingresada con exito"));
            //cierre de CallableStatement y Connection
            cs.close();
            con.close();

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public void guardarDanios() {
        //        String destino = null;
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            //Sentencia sql que hace el llamado a el procedimiento
            String sql = "{call daniogral(?,?,?,?)}";
            CallableStatement cs = con.prepareCall(sql);
            //Setting los parametros a ser captorados or el proceso almacenado
            cs.setString(1, managerModificarExpediente.numeroExpediente);
            cs.setInt(2, espacioSeleccionado); //aca va el espacio seleccionado
            cs.setString(3, materialSeleccionado);
            cs.setString(4, danioSeleccionado);
            //ejecucion del proceso almacenado
            elemento = materialSeleccionado.substring(0, 2);
            cs.execute();
            //Mensaje de actualizacion exitosa
            context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "INSERCI&Oacute;N", "La informacion fue ingresada con exito"));
            //cierre de CallableStatement y Connection
            cs.close();
            con.close();

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public void guardarCubierta() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado, porcentajedaniado, gradoAlteracionSeleccionado);
    }

    public void guardarEstructura() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado1, porcentajeDanio1, gradoAlteracionSeleccionado1);
    }

    public void guardarCielo() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado2, porcentajeDanio2, gradoAlteracionSeleccionado2);
    }

    public void guardarPared() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado3, porcentajeDanio3, gradoAlteracionSeleccionado3);
    }

    public void guardarPiso() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado4, porcentajeDanio4, gradoAlteracionSeleccionado4);
    }

    public void guardarEntrepiso() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado5, porcentajeDanio5, gradoAlteracionSeleccionado5);
    }

    public void guardarColumna() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado6, porcentajeDanio6, gradoAlteracionSeleccionado6);
    }

    public void guardarPuerta() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado7, porcentajeDanio7, gradoAlteracionSeleccionado7);
    }

    public void guardarVentana() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado8, porcentajeDanio8, gradoAlteracionSeleccionado8);
    }

    public void guardarBalcon() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado9, porcentajeDanio9, gradoAlteracionSeleccionado9);
    }

    public void guardarEscalera() {
        guardarConserAltera(espacioSeleccionado, gradoConservacionSeleccionado10, porcentajeDanio10, gradoAlteracionSeleccionado10);
    }

    public void guardarConserAltera(int espacito, int conservaSelec, int porciento, int alteracion) {
//        String destino = null;
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            //Sentencia sql que hace el llamado a el procedimiento
            String sql = "{call danioconserva(?,?,?,?,?,?)}";
            CallableStatement cs = con.prepareCall(sql);
            //Setting los parametros a ser captorados or el proceso almacenado
            cs.setString(1, managerModificarExpediente.numeroExpediente);
            cs.setInt(2, espacito); //aca va el espacio seleccionado
            cs.setInt(3, conservaSelec);
            cs.setInt(4, porciento);
            cs.setInt(5, alteracion);
            cs.setString(6, elemento);
            //ejecucion del proceso almacenado
            cs.execute();
            //Mensaje de actualizacion exitosa
            context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "INSERCI&Oacute;N", "La informacion fue ingresada con exito"));
            //cierre de CallableStatement y Connection
            cs.close();
            con.close();

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public void limpiar() {
        materialSeleccionado = null;
        danioSeleccionado = null;
    }

    public void limpiarDlg() {
        areaEspacio = 0;
        espacioEstudio = null;
    }

    public void removerDanios() throws Exception {
        espacioSeleccionado = 2;
        ConexionServidor miConexion = new ConexionServidor();
        Connection con = miConexion.getConnection();
        try {
            PreparedStatement ps = con.prepareStatement("delete from danioelemento_espacio where idexpediente = ? and idespacio = ? and correlativo = ? ");
            ps.setString(1, managerModificarExpediente.numeroExpediente);
            ps.setInt(2, espacioSeleccionado);
            ps.setInt(3, codigo);
            ps.execute();
            codigo = null;
            context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "ELIMINACI&Oacute;N", "La información fue eliminada con éxito"));
        } finally {
            con.close();
        }
    }
}
